Implementing a Functional Spreadsheet in Clean
نویسندگان
چکیده
It has been claimed that recent developments in the research on the efficiency of code generation and on graphical input/output interfacing have made it possible to use a functional language to write efficient programs that can compete with industrial applications written in a traditional imperative language. As one of the early steps in verifying this claim, this paper describes a first attempt to implement a spreadsheet in a lazy, purely functional language. An interesting aspect of the design is that the language with which the user specifies the relations between the cells of the spreadsheet is itself a lazy, purely functional and higher order language as well, and not some special dedicated spreadsheet language. Another interesting aspect of the design is that the spreadsheet incorporates symbolic reduction and normalisation of symbolic expressions (including equations). This introduces the possibility of asking the system to prove equality of symbolic cell expressions: a property which can greatly enhance the reliability of a particular user-defined spreadsheet. The resulting application is by no means a fully mature product. It is not intended as a competitor to commercially available spreadsheets. However, with its higher order lazy functional language and its symbolic capabilities it may serve as an interesting candidate to fill the gap between calculators with purely functional expressions and full-featured spreadsheets with dedicated non-functional spreadsheet languages. This paper describes the global design and important implementation issues in the development of the application. The experience gained and lessons learnt during this project are treated. Performance and use of the resulting application are compared with related work.
منابع مشابه
Quantifying Air and GHG Emission Reductions from Clean Energy Measures
Basic approaches typically include spreadsheet-based analyses that use emissions factor relationships or other assumptions to estimate reductions. Sophisticated approaches are usually more complex and involve dynamic electricity or energy system representations that predict energy generation responses to policies and calculate the effects on emissions.* 4.2.2 QUANTIFY AIR AND GHG EMISSION REDUC...
متن کاملThe Ins and Outs of Clean I/O
Functional programming languages have banned assignment because of its undesirable properties. The reward of this rigorous decision is that functional programming languages are side-effect free. There is another side to the coin: because assignment plays a crucial role in Input/Output (I/O), functional languages have a hard time dealing with I/O. Functional programming languages have therefore ...
متن کاملThe Implementation and Efficiency of Arrays in Clean 1.1
We present a new approach to implementing arrays in a pure lazy functional programming language. The arrays can be updated destructively by using uniqueness typing, and the elements can be unboxed. We describe the implementation of these arrays in the functional programming language Clean 1.1. The performance of two sorting algorithms and a fast fourier transformation written in Clean using arr...
متن کاملSteganography Anomaly Detection Using Simple One-Class Classification
There are several security issues tied to multimedia when implementing the various applications in the cellular phone and wireless industry. One primary concern is the potential ease of implementing a steganography system. Traditionally, the only mechanism to embed information into a media file has been with a desktop computer. However, as the cellular phone and wireless industry matures, it be...
متن کاملSpreadsheet Structure Discovery with Logic Programming
Our term "structure discovery" denotes the recovery of structure, such as the grouping of cells, that was intended by a spreadsheet’s author but is not explicit in the spreadsheet. We are implementing structurediscovery tools in the logic-programming language Prolog for our spreadsheet analysis program Model Master, by writing grammars for spreadsheet structures. The objective is an "intelligen...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- J. Funct. Program.
دوره 5 شماره
صفحات -
تاریخ انتشار 1995